var http = require('http');
var cheerio = require('cheerio');
var pageUrl = 'http://www.boc.cn/sourcedb/whpj/';

http.get(pageUrl, function(res) {
    var html = '';
    res.on('data', function(data) {
        html += data;
    });
    res.on('end', function() {
        //数据获取完，执行回调函数
        //console.log(callback(html));
        deleteCodeData(function(){
            inertCode(callback(html));
        });

    });
});

function callback(html) {
    //使用load方法，参数是刚才获取的html源代码数据
    var $ = cheerio.load(html);
    var arrUrl = [];

    //写法和jQuery一模一样，有没有觉得很cool

    // $('article').each(function(index, element) {
    //     var href = $(element).find('.entry-title a').attr('href');
    //     arrUrl.push(href);
    // });

    $('select[id=pjname] option').each(function(index,element){
        var value = $(element).attr('value');
        if(value && value != '0'){
            //arrUrl.push({code:$(element).attr('value'),name:$(element).text()});
            arrUrl.push($(element).text());
        }
    });

    var array = [];
    $('div[id=DefaultMain]').next('table').find('tbody tr').each(function(index,element){
        var name = $(element).find('td').eq(0).text();
        if(name){
            var code = parseFloat($(element).find('td').eq(5).text());
            var fbdata = $(element).find('td').eq(6).text();
            var fbtime = $(element).find('td').eq(7).text();
            // array.push({name:name,code:code,fbdata:fbdata,fbtime:fbtime});
            array.push([name,code,fbdata,fbtime]);
            // array.push(name);
        }
    });

    // for(var i=0; i<arrUrl.length; i++){
    //     //var item = arrUrl[i].name;
    //     var item = arrUrl[i];
    //     if(!array.includes(item)){
    //         console.log(item);
    //     }
    // }
    // console.log(array);
    return array;
}


function inertCode(arrays){
    var mysql  = require('mysql');

    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'root',
      password : 'mysql',
      port: '3306',
      database: 'waihui',
    });

    connection.connect();

    var  addSql = 'INSERT INTO code(name,code,fbdate,fbtime) VALUES ?';
    // var  addSqlParams = ['澳大利','1131','2018-03-05','12:11:11'];
    var  addSqlParams = arrays;
    console.log(addSqlParams);
    // for(var i= 0; i<80; i++){
    //     addSqlParams.push(['澳大利','1131','2018-03-05','12:11:11']);
    // }
    //console.log(addSqlParams);
    //增
    console.log('--------------------------INSERT-----'+ new Date().toTimeString() +'-----------------------');
    connection.query(addSql,[addSqlParams],function (err, result) {
            if(err){
             console.log('[INSERT ERROR] - ',err.message);
             return;
            }

           // console.log('--------------------------INSERT-----'+new Date().toTimeString()+'-----------------------');
           //console.log('INSERT ID:',result.insertId);
           console.log('INSERT ID:',result);
           console.log('---------------------------EDN-----------'+new Date().toTimeString() +'---------------------------\n\n');
    });

    connection.end();
}

// inertCode();

function deleteCodeData(callback){
    var mysql = require('mysql');
    var connection = mysql.createConnection({
        host : '127.0.0.1',
        port : '3306',
        user : 'root',
        password: 'mysql',
        database : 'waihui'
    });

    connection.connect();

    var deleteSql = 'delete from code';
    console.log('--------------------------DELETE-----'+ new Date().toTimeString() +'-----------------------');
    connection.query(deleteSql,(err,result)=>{
        console.log('------------------DELETE------------------');
        console.log('DELETE affectedRows', result.affectedRows);
        console.log('------------------------------------------');
        console.log('---------------------------EDN-----------'+new Date().toTimeString() +'---------------------------\n\n');
        callback();
    });
    connection.end();
}

// deleteCodeData();

// var count = 0;
// var results = [];
// function done() {
//     if (count == arrUrl.length) {
//         console.log('done');
//     }
// }
// arrUrl.forEach(function(item, index) {
//     http.get(item, function(res) {
//         var html = '';
//         res.on('data', function(data) {
//             html += data;
//         });
//
//         res.on('end', function() {
//             var $ = cheerio.load(html);
//             var title = $('.entry-title').text();
//
//             results[index] = {
//                 url: item,
//                 title: title
//             };
//             count++;
//             done();
//         });
//     });
// });


// var express = require('express');
// var app = express();
//
// function done() {
//     if (count == arrUrl.length) {
//         //get 方法，第一个参数路径，是一个route的作用。
//         //回调函数，参数分别是：请求，响应。
//         //监听8888端口，浏览器打开 http://127.0.0.1:8888
//         app.get('/', function(req, res) {
//             res.send(JSON.stringify(results));
//         }).listen('8888', '127.0.0.1');
//         console.log('done');
//     }
// }


// var eventproxy = require('eventproxy');
// //得到实例化对象ep
// var ep = new eventproxy();
//
// //after，第一个参数是事件名，第二个参数是事件的数量，回调函数的参数是list集合，
// ep.after('subscribe', arrUrl.length, function(results) {
//     app.get('/', function(req, res) {
//         res.send(JSON.stringify(results));
//     }).listen('8888', '127.0.0.1');
//     console.log('done');
// });
//
// arrUrl.forEach(function(item, index) {
//     http.get(item, function(res) {
//         var html = '';
//         res.on('data', function(data) {
//             html += data;
//         });
//
//         res.on('end', function() {
//             var $ = cheerio.load(html);
//             var title = $('.entry-title').text();
//
//             //通知ep的subscribe事件，ep监测执行完的事件数量等于arrUrl.length,如果等于 执行回到函数。
//             ep.emit('subscribe', {
//                 url: item,
//                 title: title
//             });
//
//         });
//   });


// 参考: https://www.cnblogs.com/Aralic/p/4591036.html
